xen/arm: vpl011: Add SBSA UART emulation in Xen
authorBhupinder Thakur <bhupinder.thakur@linaro.org>
Wed, 27 Sep 2017 06:13:11 +0000 (11:43 +0530)
committerStefano Stabellini <sstabellini@kernel.org>
Tue, 3 Oct 2017 18:36:34 +0000 (11:36 -0700)
commitca0637a147af938e89eb42869b7dc3f8470b2344
tree6a8397d2e8de0e424b345d7e2e670de9d698f8fd
parentaf8d9356417cb617b635c5ace782388ebfe86e3a
xen/arm: vpl011: Add SBSA UART emulation in Xen

Add emulation code to emulate read/write access to pl011 registers
and pl011 interrupts:

    - Emulate DR read/write by reading and writing from/to the IN
      and OUT ring buffers and raising an event to the backend when
      there is data in the OUT ring buffer and injecting an interrupt
      to the guest when there is data in the IN ring buffer

    - Other registers are related to interrupt management and
      essentially control when interrupts are delivered to the guest

This patch implements the SBSA Generic UART which is a subset of ARM
PL011 UART.

The SBSA Generic UART is covered in Appendix B of
https://static.docs.arm.com/den0029/a/Server_Base_System_Architecture_v3_1_ARM_DEN_0029A.pdf

Signed-off-by: Bhupinder Thakur <bhupinder.thakur@linaro.org>
Acked-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/Kconfig
xen/arch/arm/Makefile
xen/arch/arm/vpl011.c [new file with mode: 0644]
xen/include/asm-arm/domain.h
xen/include/asm-arm/pl011-uart.h
xen/include/asm-arm/vpl011.h [new file with mode: 0644]
xen/include/public/arch-arm.h